Data is transferred between stations on a computer network by specialized switching devices such as routers, bridges and switch nodes. Switching devices typically include a number of ports for physically connecting to network stations (e.g., workstations, printers and other switching devices), and a switching fabric for providing connection paths between the ports.
Routers, bridges, switch nodes and other switching devices (referred to collectively herein as "switching devices") typically use tables called "address tables" to control the forwarding of data packets received on their ports. Each entry in an address table associates a port on the switching device with the address of a network station. When a packet is received, its destination address is compared with entries in the table and, if a matching entry is found, the packet is forwarded to the port indicated by the table entry. If no matching station address is found in the table, the packet is typically transmitted out all ports of the switching device in a flooding operation.
Some types of switching devices generate and maintain station address tables based on source address information that is present in packets they receive. For example, if a packet received on port 0 of a switching device indicates that it was generated by a station having address A, the switching device has "learned" that station A is coupled directly or indirectly to port 0 and will record this information in its address table. If a packet destined for station A is subsequently received, the switching device can forward the packet to port 0 without having to flood all ports.
The station address table is dynamic in that new entries are added as new station addresses are detected, and existing entries must be updated when inconsistencies are determined. For example, if a port assignment of a station is changed, the switching device must respond by updating the entry in the address table to reflect the changed port assignment. Also, because the size of the address table is finite, and the number of station addresses on the network may be very large, it is usually necessary to overwrite infrequently used entries of the address table with more recent entries. Further, it is occasionally necessary to update entries in an address table due to a change in port assignment of a station. The process of updating or invalidating an old station address entry in an address table is referred to as "aging-out" the station address.
Some switching devices are organized into multiple nodes, with each node having a designated portion of the device ports. While this distributed design offers the advantage of faster, localized switching, it also complicates maintenance of the address table because the learning information needed to generate table entries may remain within the various local nodes.
In order to maintain a coherent address table in a multiple-node switching device, two techniques have been used. In one approach, multiple address tables are replicated in each of the local nodes. Replicated localized tables offer relatively fast access so that fast local switching times are maintained, but a replication protocol must be established to ensure that each of the local nodes are working from the same address table. Also, there is a loss of efficiency because multiple replicated address tables must be maintained instead of just one address table.
In an alternative approach, a centralized address table is maintained for use by all of the nodes of the switching device. When a centralized table is used, the loss of efficiency associated with maintaining multiple tables is avoided, but the local nodes must communicate with the centralized table in order to look up destination port assignments, even if the input port and the output port are located on the same local node. In other words, some of the advantage of localized switching is lost since a centrally maintained address table must be accessed to determine the destination port corresponding to a station address.